// 1.导入 mysql 模块
const mysql = require('mysql')
// 2.建立与 MySql 数据库的连接关系
const db = mysql.createPool({
    host: '127.0.0.1', // 数据库的 IP 地址
    user: 'root',    // 登录数据库的账号
    password: 'admin123',  // 登录数据库的密码
    database: 'my_db_01' // 指定要操作哪个数据库
})

// 测试 mysql 模块能否正常工作
// db.query('select 1',(err,results) => {
//     // mysql 模块工作期间报错了
//     if(err) return console.log(err.message);
//     // 能够成功的执行 SQL 语句
//     console.log(results);
// })

// 查询 users 表中所有的数据
// const sqlStr = 'select * from users'
// db.query(sqlStr,(err,results) => {
//     // 查询数据失败
//     if(err) return console.log(err.message);
//     // 查询数据成功
//     // 注意：如果执行的是 select 查询语句，则执行的结果是数组
//     console.log(results);
// })

// 向 users 表中，新增一条数据，其中 username 的值为 Spider-Man， password 的值为 pcc321
/* const user = { username: 'Spider-Man', password: 'pcc321' }
// 定义待执行的 SQL 语句
const sqlStr = 'insert into users (username,password) values (?,?)'
// 执行 SQL 语句
db.query(sqlStr,[user.username,user.password],(err,results) => {
    // 执行 SQL 语句失败了
    if(err) return console.log(err.message);
    // 成功了
    // 注意：如果执行的是 insert into 插入语句，则 results 是一个对象
    // 可以通过 affectedRows 属性，来判断是否插入数据成功
    if(results.affectedRows === 1){
        console.log('插入数据成功！');
    }
}) */

// 演示插入数据的便捷方式
/* const user = { username: 'Spider-Man2', password: 'pcc4321' }
// 定义待执行的 SQL 语句
const sqlStr = 'insert into users set ?'
// 执行 SQL 语句
db.query(sqlStr,user,(err,results) => {
    if(err) return console.log(err.message);
    if(results.affectedRows === 1){
        console.log('插入数据成功！');
    }
}) */

// 演示如何更新用户信息
/* const user = { id: 7, username: 'aaa', password: '000' }
// 定义待执行的 SQL 语句
const sqlStr = 'update users set username=?,password=? where id=?'
// 执行 SQL 语句
db.query(sqlStr, [user.username, user.password, user.id], (err, results) => {
    if (err) return console.log(err.message);
    // 注意：执行了 update 语句之后，执行的结果，也是一个对象，可以通过 affectedRows 判断是否更新成功
    if (results.affectedRows === 1) {
        console.log('更新成功');
    }
}) */

// 演示更新数据的便捷方式
// const user = { id: 7, username: 'aaaa', password: '0000' }
// // 定义 SQL 语句
// const sqlStr = 'update users set ? where id=?'
// // 执行 SQL语句
// db.query(sqlStr,[user,user.id],(err,results) => {
//     if(err) return console.log(err.message);
//     if(results.affectedRows === 1) {
//         console.log('更新数据成功');
//     }
// })

// 删除 id 为 5 的客户
/* const sqlStr = 'delete from users where id=?'
db.query(sqlStr,5,(err,results) => {
    // 执行sql语句的时候，第一个参数是sql语句，第二个参数是占位符，第三个是处理函数
    if(err) return console.log(err.message);
    // 注意：执行delete 语句之后，结果也是一个对象，也会包含 affectedRows 属性
    if(results.affectedRows === 1){
        console.log('删除数据成功');
    }
}) */

// 标记删除
const sqlStr = 'update users set status=? where id=?'
// 执行 SQL语句
db.query(sqlStr,[1,7],(err,results) => {
    if(err) return console.log(err.message);
    if(results.affectedRows === 1) {
        console.log('标记删除成功');
    }
})